import axios from "axios";

const axiosObj = axios.create({
    // 自定义基础 URL
    baseURL: 'http://localhost:9090',
    // 请求超时时间（毫秒）
    timeout: 10000,
    headers: {
        'Content-Type': 'application/json',
        'Authorization': 'Bearer your-token'
    }, // 自定义请求头
    responseType: 'json',
    // 响应的数据类型，默认是 'json'，也可以是 'arraybuffer','blob', 'document', 'text'
    validateStatus: function (status) {
        // 自定义 HTTP 状态码范围判断请求是否成功
        return status >= 200 && status < 300; // 默认标准
    },
    //transformRequest: [function (data, headers) {
    // 在发送到服务器之前，可以在此处转换请求数据
    // return data;
    // }],
    transformResponse: [function (data) {
        // 在收到服务器响应之后，可以在此处转换数据
        return data;
    }],
});

axiosObj.interceptors.response.use(
    response => {
    // 对响应数据做些什么
    // 例如，对所有成功的响应添加额外的信息
        if (response.status === 200) {
            return JSON.parse(response.data);
        } else {
    // 处理非 200 状态码
            return Promise.reject(response);
        }
    },
    error => {
    // 对响应错误做些什么
        if (error.response.status === 401) {
    // 处理未授权错误，如跳转到登录页面
        }
        return Promise.reject(error);
    }
);

export default axiosObj;